Data replication is a technique used to maintain copies of data at separate locations. For example, data can be replicated on several different sites within a corporation's campus and/or on several different ones of the corporation's campuses. If the data is replicated at different sites, and if the failure of the systems storing the data at one site is unlikely to cause the failure of the corresponding systems at another site, replication can provide increased data reliability. Thus, if a disaster occurs at one site, an application that uses that data can be restarted using a replicated copy of the data at another site.
Replication can be performed on data volumes by designating one volume as the primary volume. One or more secondary volumes are then synchronized with the primary volume. These secondary volumes can each be located at a different secondary site. Initially, a secondary volume can be synchronized to the primary volume by copying all of the data on the primary volume to the secondary volume. The data on the primary volume can be copied to the secondary volume by transferring all the data over the network, by creating a backup of the primary volume and restoring the secondary volume from the backup, or by attaching one or more mirrors of the primary volume to the secondary volume. Replication then continues by propagating any changes to data in the primary volume to the secondary volumes.
Most data replication techniques require large amounts of data to be transferred over the network that links the primary site to the secondary site(s). Thus, replication can increase network congestion and possibly lead to decreased network performance. Additionally, if synchronous replication is being performed (i.e., if an application-initiated write does not complete until the new value being written by that write has been transferred across the network), the time taken to transfer data across the network can significantly increase write latency. This increase in write latency can negatively impact application performance. Accordingly, it is desirable to reduce the amount of network traffic due to data replication.